package br.edu.utfpr.spring.security.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.servlet.mvc.support.RedirectAttributes; import br.edu.utfpr.spring.security.model.Permissao; import br.edu.utfpr.spring.security.model.Usuario; import br.edu.utfpr.spring.security.repository.PermissaoRepository; import br.edu.utfpr.spring.security.repository.UsuarioRepository; @Controller @RequestMapping("/usuario") public class UsuarioController { @Autowired private UsuarioRepository usuarioRepository; @Autowired private PermissaoRepository permissaoRepository; @RequestMapping(value = "/") public String novo() { return "usuario/form"; } @RequestMapping(value = "/", method = RequestMethod.POST) public String salvar(Usuario usuario, BindingResult erros, Model model, RedirectAttributes redirect) { String password = usuario.getPassword(); String encodePassword = usuario.getEncodePassword(password); usuario.setPassword(encodePassword); usuario.addPermissao(getPermissao()); redirect.addFlashAttribute("mensagem", "Usuário criado com sucesso"); usuarioRepository.save(usuario); return "redirect:/login"; } private Permissao getPermissao() { Permissao permissao = permissaoRepository.findByPermissao("ROLE_USER"); if (permissao == null) { permissao = new Permissao(); permissao.setPermissao("ROLE_USER"); permissaoRepository.save(permissao); } return permissao; } }